<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>
  <button id="btn1">按钮1</button>
  <button id="btn2">按钮2</button>
  <button id="send">提交</button>
  <form action="">
    <input type="text" name="a">
    <input type="text" name="b">
  </form>

  <script src="../libs/jquery-1.12.4.js"></script>
  <script>
    /* 
      trigger 
        用其他元素触发另外一些元素的某些事件

        触发时可以传递一些参数，参数是出事件对象外的后面的几个参数
        function (e, num) {

        }

        .trigger('事件', 1)  那么num就会接受到这个1

        

      trigger和triggerHandler有以下三个区别
        * 第一，他不会触发浏览器默认事件也不会产生事件冒泡。
        * 第二，只触发jQuery对象集合中第一个元素的事件处理函数。
        * 第三，这个方法的返回的是事件处理函数的返回值，而不是据有可链性的jQuery对象。此外，如果最开始的jQuery对象集合为空，则这个方法返回 undefined 。
     */
    $(function () {
      $('#btn1').on('mouseover', function (e, num) {
        console.log(num)
        alert('鼠标移入按钮1')
      })

      $('#btn2').on('click', function () {
        console.log('点击了按钮2')
        $("#btn1").trigger('mouseover', 1)
      })
      
      $("#send").on('click', function () {
        $('form').triggerHandler('submit')
      })
    })
  
  </script>
</body>
</html>